package com.ssy.lingxi.logistics.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.logistics.api.dto.request.CommonIdRequest;
import com.ssy.lingxi.logistics.model.request.ReceiverAddressAgentAddRequest;
import com.ssy.lingxi.logistics.model.request.ReceiverAddressAgentUpdateRequest;
import com.ssy.lingxi.logistics.model.request.ReceiverAddressListRequest;
import com.ssy.lingxi.logistics.model.response.ReceiverAddressAgentListResponse;
import com.ssy.lingxi.logistics.model.response.ReceiverAddressResponse;

/**
 * 代客下单收货地址服务类
 * 供应商(代理人)帮采购商(被代理人)下单的过程中, 供应商帮采购商增删查改收货地址
 *
 * @author yzc
 * @version 2.0.0
 * @date 2020/7/13
 */
public interface IReceiverAddressAgentService {

    /**
     * 收货地址分页列表
     * @param request 接口参数
     * @param loginUser 登录用户信息
     * @return 返回结果
     */
    Wrapper<PageData<ReceiverAddressAgentListResponse>> pageReceiverAddress(ReceiverAddressListRequest request, UserLoginCacheDTO loginUser);

    /**
     * 收货地址添加
     * @param request 接口参数
     * @param loginUser 登录用户信息
     * @return 返回结果
     */
    Wrapper<ReceiverAddressResponse> addReceiverAddress(ReceiverAddressAgentAddRequest request, UserLoginCacheDTO loginUser);

    /**
     * 收货地址修改
     * @param request 接口参数
     * @param loginUser 登录用户信息
     */
    Wrapper<Void> updateReceiverAddress(ReceiverAddressAgentUpdateRequest request, UserLoginCacheDTO loginUser);

    /**
     * 收货地址删除
     * @param request 接口参数
     * @param loginUser 登录用户信息
     * @return 返回结果
     */
    Wrapper<Void> deleteReceiverAddress(CommonIdRequest request, UserLoginCacheDTO loginUser);
}
